package 迭代器模式与组合模式;

/**
 * @author zzs
 * @ClassName Demo.java
 * @Description 迭代器模式将遍历进行了封装，遵循单一职责。
 * 一个类的责任越少那么它维护就越容易！！
 * 组合模式：以组件的方式存在，组件可以是组合也可以是叶节点。这样设计可能会带来一些不必要的功能职务，需要做一些技术折中的处理。
 * @createTime 2022年05月18日 18:56:00
 */
public class Demo {
    public static void main(String[] args) {
        Apples apples = new Apples(new Integer[]{1, 2, 3, 4, 5, null, null});

        Iterator iterator = apples.createdItem();
        while (iterator.hashNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }
        apples.setSonMenuItem(new Orange(new Integer[]{1, 2, 3}));
        // 实现子菜单
        if (apples.menuItem != null) {
            Iterator iterator1 = apples.menuItem.createdItem();
            while (iterator1.hashNext()) {
                System.out.println(iterator1.next());
            }
        }
    }
}
